想要改善這篇文章嗎?提供此問題的詳細答案,包括引文和為什麼答案正確的解釋。答案不夠詳細的答案可能會被編輯或刪除。 git pull和git fetch有什麼區別?
1個 2 下一個 用最簡單的術語來說,git pull進行git fetch,然後進行git merge。 您可以隨時執行git fetch來更新refs / remotes //下的遠程跟踪分支。 此操作永遠不會更改引用/標題下的任何本地分支,並且可以安全地執行而無需更改工作副本。我什至聽說有人在後台執行cron作業中定期運行git fetch(儘管我不建議這樣做)。 git pull是您要執行的操作,以使本地分支機構的遠程版本保持最新,同時還更新其他遠程跟踪分支機構。 從git pull的Git文檔中: 在默認模式下,git pull是git fetch的簡寫,其次是git merge FETCH_HEAD。 | 使用pull時,Git會嘗試自動為您完成工作。它是上下文相關的,因此Git會將所有提交的提交合併到您當前正在使用的分支中。pull自動合併提交,而無需您先對其進行審查。如果您不嚴密管理分支機構,則可能會經常發生衝突。 提取時,Git會從目標分支中收集當前分支中不存在的所有提交,並將它們存儲在本地存儲庫中。但是,它不會將它們與當前分支合併。如果您需要使存儲庫保持最新狀態,但是正在進行某些可能會在更新文件時中斷的工作,則此功能特別有用。 要將提交集成到您的master分支中,請使用merge。 | 必須將git的設計理念與更傳統的源代碼控制工具(如SVN)的理念進行對比。 Subversion是使用客戶端/服務器模型設計和構建的。服務器是一個單一的存儲庫,幾個客戶端可以從服務器獲取代碼,對其進行處理,然後將其提交回服務器。假定客戶端在需要執行操作時始終可以與服務器聯繫。 Git旨在支持一種更分佈式的模型,而無需一個中央存儲庫(儘管您當然可以使用一個存儲庫)。還設計了git,以便客戶端和“服務器”不需要同時處於聯機狀態。 Git的設計目的是使鏈接不可靠的人甚至可以通過電子郵件交換代碼。可以完全斷開連接並刻錄CD以通過git交換代碼。 為了支持該模型,git會使用您的代碼維護一個本地存儲庫,以及一個用於鏡像遠程存儲庫狀態的附加本地存儲庫。通過在本地保留遠程存儲庫的副本,即使無法訪問遠程存儲庫,git也可以找出所需的更改。稍後,當您需要將更改發送給其他人時,git可以將它們作為一組更改從遠程存儲庫已知的時間點進行傳輸。 git fetch是說“使遠程存儲庫的本地副本最新”的命令。 git pull說“將遠程存儲庫中的更改帶到我自己保存代碼的位置。” 通常,git pull通過執行git fetch來使遠程存儲庫的本地副本保持最新,然後將更改合併到您自己的代碼存儲庫以及可能的工作副本中來實現。 要記住的是,您的工作站上通常至少有三個項目的副本。一個副本是您自己的存儲庫,具有自己的提交歷史記錄。第二個副本是您正在編輯和構建的工作副本。第三個副本是遠程存儲庫的本地“緩存”副本。 | 這是奧利弗·斯蒂爾(Oliver Steele)關於所有事物如何融合的圖像: 如果有足夠的興趣,我想我可以更新圖像以添加git clone和git merge ... | git fetch的一個用例是,以下內容將告訴您自上次拉取以來遠程分支中的任何更改...,因此您可以在執行實際拉取之前進行檢查,這可能會更改當前分支和工作副本中的文件。 git獲取 git diff ...起源 有關diff命令中的雙點和三點語法,請參見:https://git-scm.com/docs/git-diff | 我花了一點時間來了解有什麼區別,但這只是一個簡單的解釋。本地主機中的master是分支。 克隆存儲庫時,會將整個存儲庫獲取到本地主機。這意味著到那時您有一個指向HEAD的原點/主指針和指向同一HEAD的主指針。 當您開始工作並提交時,您可以將主指針前進到HEAD +您的提交。但是原始/主指針仍指向克隆時的狀態。 因此區別將是: 如果執行git fetch,它將僅獲取遠程存儲庫(GitHub)中的所有更改並將原始/主指針移至HEAD。同時,您的本地分支主管將繼續指向其所在位置。 如果您執行git pull,它將基本上進行抓取(如前所述)並將所有新更改合併到您的master分支並將指針移到HEAD。 | 有時視覺表示會有所幫助。 | 簡要地 git fetch與pull類似,但不會合併。即它獲取遠程更新(引用和對象),但您的本地保持不變(即,源/主服務器已更新,但主服務器保持不變)。 git pull從遠程下拉並立即合併。 更多 git clone克隆一個倉庫。 git rebase將當前分支中不在上游分支中的內容保存到臨時區域。現在,您的分支與開始更改之前的分支相同。因此,git pull -rebase將拉下遠程更改,倒回本地分支,在當前分支的頂部逐一重放更改,直到最新為止。 另外,git branch -a將向您確切顯示所有分支機構(本地和遠程)的最新情況。 這篇博客文章很有用: git pull,git fetch和git clone(以及git rebase)之間的區別-Mike Pearce 並涵蓋git pull,git fetch,git clone和git rebase。 ==== 更新 我以為我會對此進行更新,以顯示您實際上如何在實踐中使用它。 從遠程更新本地存儲庫(但不要合併): git獲取 下載更新後,讓我們看一下區別: git diff master來源/ master 如果您對這些更新感到滿意,請合併: git pull 筆記: 在步驟2:有關本地和遠程之間差異的更多信息,請參見:如何將本地git分支與其遠程分支進行比較? 在第3步:在此處執行git rebase起源可能更準確(例如,在快速更改的倉庫中)。參見@Justin Ohms的其他回答。 另請參閱:http://longair.net/blog/2009/04/16/git-fetch-and-merge/ | git-pull-從另一個存儲庫或本地分支獲取並合併 概要 git pull… 描述 使用給定的參數運行git-fetch,並調用git-merge合併 檢索到當前分支的頭。使用--rebase,調用git-rebase 而不是git-merge。 請注意,您可以使用。 (當前目錄)作為 拉 從本地存儲庫中獲取-合併本地分支機構時,這很有用 進入當前分支。 還要注意,這些選項用於git-pull本身和底層git-merge 必須在用於git-fetch的選項之前給出。 如果您希望合併歷史記錄,那麼您會選擇拉扯;如果您只是想“編碼”,那麼您會得到幫助,因為有人在這裡標記了一些文章。 | 您可以從遠程存儲庫中獲取內容,查看差異,然後進行合併。 這是一個名為origin的遠程存儲庫和一個名為master的分支的示例,該分支跟踪遠程分支的origin / master: git checkout主 git獲取 git diff起源/母版 git rebase原始主機 | 簡短而簡單的答案是git pull只是git fetch然後是git merge。 請務必注意,無論您是否喜歡,git pull都會自動合併。當然,這可能會導致合併衝突。假設您的遠程服務器是源服務器,而您的分支機構是主服務器。如果在拉動前git diff origin / master,則應該對潛在的合併衝突有所了解,並可以相應地準備本地分支。 除了拉動和推入之外,有些工作流程還涉及git rebase,例如這一工作,我從鏈接的文章中解釋為: git pull起源大師 git checkout foo-branch git rebase master git push origin foo-branch 如果發現自己處於這種情況,則可能會嘗試使用git pull --rebase。除非您真的非常了解自己在做什麼,否則我建議您不要這樣做。此警告來自git-pull版本2.3.5的手冊頁: 這是潛在的危險操作模式。它重寫 歷史記錄,當您發布該歷史記錄時預示情況並不理想 已經。除非已閱讀git-rebase(1),否則請勿使用此選項。 小心。 | 好的,這裡有一些有關git pull和git fetch的信息,因此您可以理解實際的區別...簡單來說,fetch可以獲取最新數據,但不會更改代碼,也不會弄亂您當前的本地分支代碼,但請獲取代碼更改並將其合併到您的本地分支中,繼續閱讀以獲得有關每個代碼的更多詳細信息: git獲取 它將所有參考和對像以及任何新分支下載到本地存儲庫... 從一個或多個中獲取分支和/或標籤(統稱為“引用”) 其他存儲庫,以及完成存儲庫所需的對象 歷史。遠程跟踪分支已更新(請參閱說明 以下是控制此行為的方法)。 默認情況下,任何指向要提取的歷史記錄的標記都是 也拿來效果是獲取指向分支的標籤 您感興趣。可以通過使用以下方式更改此默認行為: --tags或--no-tags選項或通過配置 remote..tagOpt。通過使用明確獲取標籤的refspec, 您可以獲取不指向您感興趣的分支的標籤 在。 git fetch可以從中獲取單個命名存儲庫或URL,或者 從多個存儲庫中一次給出(如果有) 遙控器。配置文件中的條目。 (參見git-config1)。 如果未指定任何遠程,默認情況下,源遠程為 使用,除非為當前配置了上游分支 科。 獲取的引用的名稱以及對象名稱 他們指向,被寫入.git / FETCH_HEAD。此信息可能是 由腳本或其他git命令(例如git-pull)使用。 git pull 它將更改從遠程應用於本地的當前分支... 將更改從遠程存儲庫合併到當前分支。 在默認模式下,git pull是git fetch的簡寫,後跟 git merge FETCH_HEAD。 更準確地說,git pull使用給定參數運行git fetch, 調用git merge將檢索到的分支頭合併到當前 科。使用--rebase,它將運行git rebase而不是git merge。 應該是傳遞給的遠程存儲庫的名稱 git-fetch1。可以命名任意的遠程引用(例如, 標籤的名稱)甚至是帶有相應內容的ref的集合 遠程跟踪分支(例如refs / heads /:refs / remotes / origin /), 但通常是遠程存儲庫中分支的名稱。 和的默認值是從 由設置的當前分支的“遠程”和“合併”配置 git-branch --track。 我還在下面創建了視覺效果,以向您展示git fetch和git pull如何協同工作... | 這種交互式的圖形表示形式對於理解git很有幫助:http://ndpsoftware.com/git-cheatsheet.html git fetch只是將更改從遠程“下載”到本地存儲庫。 git pull下載更改並將其合併到當前分支中。 “在默認模式下,git pull是git fetch的簡寫,然後是git merge FETCH_HEAD。” | 獎金: 在上述答案中提到拉取時,我想分享一個有趣的技巧, git pull --rebase 上面的命令是我的git一生中最有用的命令,它節省了很多時間。 在將新提交推送到服務器之前,請嘗試使用此命令,它將自動同步最新的服務器更改(通過訪存+合併),並將您的提交放在git日誌的頂部。無需擔心手動拉/合併。 有關詳細信息,請訪問:http://gitolite.com/git-pull--rebase | 我喜歡對情況有一些直觀的了解,以掌握這些東西。也許其他開發人員也希望看到它,所以這是我的補充。我不確定這是否正確,如果發現任何錯誤,請發表評論。 本地系統 。 ================================================== === ================= ================================================= 遠程倉庫。遠程倉庫本地倉庫工作副本 (來源)。 (已封) 例如, 。鏡子 github倉庫。 。遠程倉庫 也可以是 。 多個回購協議。 。 。 FETCH * ------------------> * 遠程的本地緩存已使用源(或多個)更新 外部資源,即git的分佈式性質) 。 拉 * - - - - - - - - - - - - - - - - - - - - - - - - --------> * 更改將直接合併到您的本地副本中。發生衝突時 您被要求做出決定。 。 提交。 * <--------------- * 例如,當來自顛覆時,您可能會認為 將更新原點。在git中,僅對本地倉庫執行一次提交。 。 推* <--------------------------------------- * 將您的更改同步回原點。 獲取遠程鏡像的一些主要優點是: 性能(滾動所有提交和消息,而無需嘗試通過網絡進行壓縮) 有關您本地存儲庫狀態的反饋(例如,我使用Atlassian的SourceTree,這將為我提供一個燈泡,指示相對於原點,我是在前還是在後。該信息可以用GIT FETCH更新)。 | 我也為此感到掙扎。實際上,我是通過Google搜索完全相同的問題來到這裡的。讀完所有這些答案後,我的腦海中終於有了一幅圖畫,我決定嘗試著眼於2個存儲庫和1個沙箱的狀態以及隨著時間推移執行的操作,同時觀察它們的版本。這就是我的想法。如果我在任何地方搞砸了,請糾正我。 三個回購協議: --------------------- ----------------------- ------ ----------------- -遠程倉庫--遠程倉庫--遠程倉庫- ---被推--- -@ R01--@ R02--@ R02- --------------------- ----------------------- ------ ----------------- --------------------- ---------------------------------------------- -本地倉庫--本地倉庫--本地倉庫- -拉----獲取- -@ R01--@ R01--@ R02- --------------------- ----------------------- ------ ----------------- --------------------- ----------------------- ------ ----------------- -本地沙箱--本地沙箱--本地沙箱- -結帳--完成新工作--- -@ R01--@ R01 +--@ R01 +- --------------------- ----------------------- ------ ----------------- 三個回購 --------------------- ----------------------- ------ ----------------- -遠程倉庫--遠程倉庫--遠程倉庫- ---被推--- -@ R01--@ R02--@ R02- --------------------- ----------------------- ------ ----------------- --------------------- ----------------------- ------ ----------------- -本地倉庫--本地倉庫--本地倉庫- -拉----拉- -@ R01--@ R01--@ R02- --------------------- ----------------------- ------ ----------------- --------------------- ----------------------- ------ ----------------- -本地沙箱--本地沙箱--本地沙箱- -結帳--完成新工作--與R02合併- -@ R01--@ R01 +--@ R02 +- --------------------- ----------------------- ------ ----------------- 這有助於我理解為什麼獲取非常重要。 | GIT提取和GIT拉取之間的區別可以通過以下情形來解釋: (請記住,圖片勝於單詞!,我提供了圖片表示法) 讓我們舉個例子,您正在與團隊成員一起進行項目。因此,將有一個項目的主分支,所有貢獻者必須將其分叉到自己的本地存儲庫,然後在該本地分支上進行修改/添加模塊,然後推回主分支。 所以, 當您在本地存儲庫中分叉主項目時,這兩個分支的初始狀態將如下所示(A,B和C是該項目已完成的模塊) 現在,您已經開始研究新模塊(假設為D),並在完成D模塊後將其推送到主分支,但是同時發生的是,您的一個隊友已經開發了新的E,F和修改後的C. 因此,現在發生的事情是您的本地存儲庫缺少項目的原始進度,因此將更改推到主分支可能會導致衝突,並可能導致模塊D發生故障。 為避免此類問題並與項目的原始進度並行進行,有兩種方法: 1. Git Fetch-這將下載對Origin / main分支項目所做的所有更改,這些更改在您的本地分支中不存在。並且將等待Git Merge命令將已獲取的更改應用於您的存儲庫或分支。 因此,現在您可以在將文件合併到存儲庫之前仔細監視文件。並且由於修改了C,還可以根據需要修改D。 2. Git Pull-這會用origin / main分支更新您的本地分支,即實際上它是Git Fetch和Git相互合併的組合。 但這可能會引起衝突,因此建議使用乾淨副本的Git Pull。 | 我們只是說: git pull == git提取+ git merge 如果運行git pull,則無需將數據合併到本地。如果運行git fetch,則意味著必須運行git merge才能將最新代碼獲取到本地計算機。否則,如果不合併,將不會更改本地機器代碼。 因此,在Git Gui中,當您提取數據時,必須合併數據。提取本身不會在您的本地更改代碼。您可以在獲取代碼時檢查代碼是否更新 一旦獲取並看到;不會更改的代碼。然後合併...您將看到更改的代碼。 | git fetch將代碼從遠程服務器下拉到本地存儲庫中的跟踪分支。如果您的遙控器被命名為origin(默認值),則這些分支將位於origin /之內,例如origin / master,origin / mybranch-123等。這些不是您當前的分支,它們是服務器中這些分支的本地副本。 。 git pull進行git fetch,但同時還將跟踪分支中的代碼合併到當前該分支的本地版本。如果您還沒有準備好進行更改,請先git fetch。 | git fetch將檢索遠程分支,以便您可以git diff或git將它們與當前分支合併。 git pull將在當前分支跟踪的遠程分支上運行訪存,然後合併結果。您可以使用git fetch查看遠程分支是否有任何更新,而無需將其與本地分支合併。 | Git獲取 您可以將更改從源下載到本地分支下載。 Fetch向遠程存儲庫詢問其他人進行的所有提交,但您沒有在本地存儲庫上進行的提交。 Fetch下載這些提交並將它們添加到本地存儲庫。 Git合併 您可以使用merge命令應用通過提取下載的更改。合併將採用從提取中獲取的提交,並嘗試將它們添加到本地分支中。合併將保留本地更改的提交歷史記錄,這樣,當您通過push共享分支時,Git將知道其他人如何合併您的更改。 吉特拉 提取和合併經常一起運行,以至於創建了一個將兩者(合併)的命令。 Pull先進行提取,然後進行合併,以將下載的提交添加到本地分支中。 | 簡單來說,如果您要跳上沒有任何互聯網連接的飛機...在出發之前,您可以執行git fetch origin 。它會將所有更改取到您的計算機中,但將其與本地開發/工作區分開。 在飛機上,您可以更改本地工作區,然後將其與所獲取的內容合併,並解決潛在的合併衝突,而無需連接到Internet。除非有人對遠程存儲庫進行了新的更改,否則一旦到達目的地,您將執行git push origin 並獲取咖啡。 從這個很棒的Atlassian教程中: git fetch命令從以下位置下載提交,文件和引用: 遠程存儲庫到本地存儲庫。 當您想看到其他人擁有的東西時,便是您要做的事情 一直在努力。與SVN更新類似,它可以讓您看到 中央歷史如何發展,但這並不會迫使您 實際上將更改合併到您的存儲庫中。 Git分離株 從現有本地內容中獲取內容,它絕對 對您的本地開發工作沒有影響。必須使用git checkout命令顯式地檢出獲取的內容。這使得 在將提交與之集成之前,獲取一種安全的方式來審查提交 您的本地存儲庫。 從遠程存儲庫下載內容時,可以使用git pull和git fetch命令來完成任務。你可以考慮 git獲取兩個命令的“安全”版本。它將下載 遠程內容,但不會更新本地存儲庫的工作狀態, 保留您當前的工作。 git pull更積極 或者,它將下載活動本地的遠程內容 分支並立即執行git merge創建合併提交 用於新的遠程內容。如果您有待處理的變更 這將導致衝突並啟動合併衝突解決方案 流。 使用git pull: 您沒有任何隔離。 不需要顯式簽出。因為它隱式地進行了git合併。 合併步驟將影響您的本地發展並可能導致衝突 這基本上是不安全的。好鬥 與git fetch不同,它僅影響您的.git / refs / remotes,而git pull將同時影響您的.git / refs / remotes和.git / refs / heads / 嗯...所以,如果我不使用git fetch更新工作副本,那麼我在哪裡進行更改? Git提取將新提交存儲在哪裡? 好問題。它將其放置在與工作副本隔離的位置。但是又在哪裡?讓我們找出答案。 在項目目錄(即執行git命令的位置)中執行以下操作: ls。這將顯示文件和目錄。沒什麼好酷的,我知道。 現在執行ls -a。這將顯示點文件,即以開頭的文件。然後,您將能夠看到一個名為:.git的目錄。 執行cd .git。顯然,這將更改您的目錄。 有趣的來了;做ls。您將看到目錄列表。我們正在尋找裁判。做cd refs。 看看所有目錄中都有什麼很有趣,但讓我們集中討論其中兩個。頭和遙控器。也使用cd檢查它們的內部。 您執行的任何git fetch都會更新/.git/refs/remotes目錄中的項目。它不會更新/.git/refs/heads目錄中的任何內容。 任何git pull都會首先進行git fetch,更新/.git/refs/remotes目錄中的項目,然後與本地文件合併,然後更改/.git/refs/heads目錄中的文件頭。 一個很好的相關答案也可以在“ git fetch”放置在何處?中找到。 另外,在Git分支命名約定中查找“斜杠表示法”。它可以幫助您更好地了解Git如何將事物放入不同的目錄。 看實際差異 做就是了: git fetch origin master git checkout主 如果遠程主服務器已更新,您將收到以下消息: 您的分支落後“起源/母版” 2次提交,並且可以快速轉發。 (使用“ git pull”更新您的本地分支) 如果您沒有獲取而只是git checkout master,那麼您本地的git將不知道添加了2個提交。它只會說: 已經在“主人”上 您的分支機構是最新的“來源/主”。 但這已經過時且不正確。這是因為git只會根據已知信息給您反饋。尚未提交的新提交遺忘了... 在本地工作分支時,是否有任何方法可以查看遠程所做的新更改? 某些IDE(例如Xcode)超級智能,並使用git fetch的結果,並且可以註釋當前工作分支的遠程分支中已更改的代碼行。如果該行已被本地更改和遠程分支更改,則該行將用紅色註釋。這不是合併衝突。這是潛在的合併衝突。在從遠程分支執行git pull之前,可以使用此提示來解決將來的合併衝突。 有趣的提示: 如果您獲取了一個遠程分支,例如做了: git fetch origin feature / 123 然後這將進入您的remotes目錄。您的本地目錄仍然不可用。但是,它通過DWIM簡化了您到該遠程分支的簽出(執行我的意思): git checkout功能/ 123 您不再需要執行以下操作: git checkout -b功能/ 123 origin / feature / 123 有關更多信息,請點擊此處 | git pull和git fetch之間的唯一區別是: git pull從遠程分支中提取並合併。 git fetch僅從遠程分支獲取,但不合併 即git pull = git fetch + git merge ... | Git允許按時間順序將較早的提交應用於較新的提交。 因此,在存儲庫之間傳輸提交的操作分為兩個步驟: 將新的提交從遠程分支複製到本地倉庫中的該遠程分支的副本。 (回購到回購操作)master @ remote >> remote / origin / master @ local 將新提交集成到本地分支 (內部回購操作)remote / origin / master @ local >> master @ local 有兩種方法可以執行步驟2。您可以: 在最後一個共同祖先之後分叉本地分支,並添加與本地存儲庫唯一的提交平行的新提交,通過合併提交,關閉分叉來最終確定。 在最後一個共同祖先之後插入新的提交,然後重新應用本地存儲庫唯一的提交。 用git術語,第1步是git fetch,第2步是git merge或git rebase git pull是git fetch和git merge | Git使用以下兩個命令來獲取從遠程到本地的最新版本的分支: git fetch:Git將從遠程到本地獲取最新版本,但不會自動合併。 git fetch origin master git log -p master..origin / master git merge原始/主 上面的命令意味著從遠程將主分支的最新版本從遠程下載到起源主分支。然後比較本地主分支和原始主分支。最後,合併。 git pull:Git將從遠程獲取最新版本並合併到本地。 git pull起源大師 上面的命令等效於git fetch和git merge。實際上,git fetch可能更安全,因為在合併之前,我們可以看到更改並決定是否合併。 | git pull和git fetch有什麼區別? 要了解這一點,您首先需要了解本地git不僅維護本地存儲庫,而且還維護遠程存儲庫的本地副本。 git fetch使您的遠程存儲庫本地副本保持最新狀態。例如,如果您的遠程存儲庫是GitHub-您可能希望將在遠程存儲庫中所做的所有更改都提取到遠程存儲庫的本地副本中。這將允許您執行比較或合併之類的操作。 另一方面,git pull會將遠程存儲庫中的更改放到保留您自己的代碼的位置。通常,git pull將首先執行git fetch以使遠程存儲庫的本地副本保持最新,然後將更改合併到您自己的代碼存儲庫中,並可能合併到您的工作副本中。 | git pull ==(git fetch + git merge) git fetch不會更改為本地分支。 如果您已經有一個本地庫,並為所需項目設置了遠程設置,則可以使用git fetch獲取現有遠程設備的所有分支和標籤。 ...提取不會對本地分支進行任何更改,因此您需要將遠程分支與成對的本地分支合併以合併新的提取更改。來自github | 一個適合初學者的簡單圖形表示, 這裡, git pull 將獲取代碼從存儲庫並使用本地本地庫進行基礎...在git pull中,可能會創建新的提交。 但在 , git獲取 將從存儲庫中獲取代碼,我們需要使用git rebase手動對其進行重新設置 例如:我要從服務器主服務器獲取信息並將其重新放置在本地主服務器中。 1)git pull(變底會自動完成): git pull起源大師 這是您的遠程倉庫主節點,是您的分支機構 2)git fetch(需要手動重新設置基準): git fetch origin master 它將從源獲取服務器更改。並且它將一直存在於您的本地環境中,直到您自己重新建立基礎為止。我們需要通過檢查代碼來手動解決衝突。 git rebase起源/主 這會將代碼重新打包為本地代碼。在此之前,請確保您在正確的分支中。 | 力求清晰和簡單。 git pull命令實際上是git fetch的快捷方式,其後是git merge或git rebase命令,具體取決於您的配置。您可以配置您的Git存儲庫,以便git pull是先進行提取,然後進行重新設置。 | 實際上,Git會維護您自己的代碼的副本,並且 遠程存儲庫。 git fetch命令通過從遠程存儲庫獲取數據來使本地副本保持最新狀態。我們之所以需要這樣做,是因為其他人可能已經對代碼進行了一些更改,而您想保持自己的最新狀態。 git pull命令將遠程存儲庫中的更改帶到您保留自己的代碼的位置。通常,git pull通過執行“ git fetch”來實現此目的,以使遠程存儲庫的本地副本保持最新,然後將更改合併到您自己的代碼存儲庫中,並可能合併到您的工作副本中。 | 1個 2 下一個 高度活躍的問題。贏得10個聲譽才能回答這個問題。信譽要求有助於保護該問題免受垃圾郵件和非答復活動的侵害。 不是您要找的答案?瀏覽其他標記為git version-control git-pull git-fetch的問題,或詢問您自己的問題。